// myForm表单数据类型规范

// 输入框类型
type InputTypes = 'text' | 'password' | 'select' | 'picker' | 'textarea'

// 输入框尺寸
type InputSize = 'large' | 'default' | 'small'

// 时间选择器类型
type InputPickerTypes =
  | 'year'
  | 'month'
  | 'date'
  | 'datetime'
  | 'week'
  | 'datetimerange'
  | 'daterange'

// myForm表单子项数据
export interface FormItemsTypes {
  // 数据标题
  label: string
  // 数据字段，用于数据双向绑定
  field: string
  // 输入框类型
  type: InputTypes
  // 其他配置
  options?: {
    size?: InputSize
    // 输入框提示
    placeholder?: string
  }
  // 针对选择框的其他配置
  selectOptions?: {
    label: string
    value: string | number
  }[]
  // 针对时间选择器的配置
  pickerOptions?: {
    type?: InputPickerTypes
    // 结束提示
    endPlaceholder?: string
    // 开始提示
    startPlaceholder?: string
    // 过渡
    rangeSparator?: string
  }
}

// myForm配置信息
export interface FormConfigTypes {
  // 表单样式 排列方式
  formStyle?: any
  // 表单子项样式 padding margin
  itemStyle?: any
  // 表单标题长度
  formLabelWidth?: string
  // 表单数据
  formItems: Array<FormItemsTypes>
}
